#define _CRT_SECURE_NO_WARNINGS 1

/*
	合并两个有序数组
*/
void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n)
{
    int l1 = m - 1;
    int l2 = n - 1;
    int l3 = nums1Size - 1;

    while (l2 >= 0 && l1 >= 0)
    {
        if (nums1[l1] > nums2[l2])
        {
            nums1[l3--] = nums1[l1--];
        }
        else
        {
            nums1[l3--] = nums2[l2--];
        }
    }
    //l2小于0说明已经将nums2中的所有数据放入到nums1中
    //所以现在只需要解决l1小于0的情况
    if (l1 < 0)
    {
        while (l2 >= 0)
        {
            nums1[l3--] = nums2[l2--];
        }
    }
}

/*
    移除元素
*/
int removeElement(int* nums, int numsSize, int val)
{
    int sour = 0;
    int dest = 0;

    while (sour < numsSize)
    {
        if (nums[sour] == val)
        {
            sour++;
        }
        else
        {
            nums[dest++] = nums[sour++];
        }
    }
    return dest;
}